fork函数的那些事儿 |
您所在的位置:网站首页 › linux c fork 数据库 › fork函数的那些事儿 |
提到fork()函数就不得不提到父子进程,子进程是以父进程为模板通过fork()函数来创建的.父子进程共享,各自开辟空间(子进程会把父进程的虚拟地址空间拷贝一份,作为子进程的地址空间),拥有自己的进程. 一:父进程与子进程之间的约定父进程返回子进程的pid fork()函数成功子进程返回0 fork()函数执行失败,返回值为-1 1:失败的原因有两种:1.内存不够,导致子进程无法继续申请地址空间 2.进程太多,导致申请失败 【注】:父子进程执行顺序没有先后关系,全靠调度器实现 2: 验证父子进程返回值 #include #include int main(){ //__pid_t和pid_t还有int 都是等价的 pid_t ret=fork(); if(ret>0){ //father printf("father:%d\n ",getpid()); } else if(ret== 0){ //child printf("child:%d\n",getpid()); }else{ perror("fork"); } sleep(1); return 0; } 3:【小结】: 父进程返回子进程的pid,子进程返回0通常需要让父子进程执行不同的逻辑,就可以借助fork的返回值来进行区分 二:神奇的fork()与缓冲区的秘密 #include #include int main(){ for(int i=0;i for(int i=0;i |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |